#include <vector>
#include <unordered_map>
#include "BASE.h"

void BASE::INIT_INSTABLE()
{
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111110000000000111000001111111;
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000110011"), ADD_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000000110011"), AND_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000100000000001011"), BARRIER_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000110000000000100000000001011"), BARRIERSUB_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000100000000110011"), DIV_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000101000000110011"), DIVU_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000000001011"), ENDPRG_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100010000000000010000001010011"), FEQ_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000010000001010011"), FEQ_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100010000000000000000001010011"), FLE_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000000000001010011"), FLE_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100010000000000001000001010011"), FLT_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000001000001010011"), FLT_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101010000000000001000001010011"), FMAX_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000001000001010011"), FMAX_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101010000000000000000001010011"), FMIN_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000000000001010011"), FMIN_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100010000000000000000001010011"), FSGNJ_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000000000001010011"), FSGNJ_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100010000000000001000001010011"), FSGNJN_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000001000001010011"), FSGNJN_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100010000000000010000001010011"), FSGNJX_D_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000010000001010011"), FSGNJX_S_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000000000000110011"), MUL_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000001000000110011"), MULH_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000010000000110011"), MULHSU_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000011000000110011"), MULHU_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000000110011"), OR_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000110000000110011"), REM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000111000000110011"), REMU_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000000110011"), SLL_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000000010011"), SLLI_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000110011"), SLT_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000000110011"), SLTU_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000101000000110011"), SRA_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000101000000010011"), SRAI_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000110011"), SRL_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000010011"), SRLI_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000000000000110011"), SUB_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000011000001010111"), VADC_VIM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000000000001010111"), VADC_VVM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000100000001010111"), VADC_VXM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01011110000000000010000001010111"), VCOMPRESS_VM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01011100000000000101000001010111"), VFMERGE_VFM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000110000000000011000001010111"), VMADC_VI_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000100000000000011000001010111"), VMADC_VIM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000110000000000000000001010111"), VMADC_VV_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000100000000000000000001010111"), VMADC_VVM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000110000000000100000001010111"), VMADC_VX_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000100000000000100000001010111"), VMADC_VXM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01011100000000000011000001010111"), VMERGE_VIM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01011100000000000000000001010111"), VMERGE_VVM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01011100000000000100000001010111"), VMERGE_VXM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01001110000000000000000001010111"), VMSBC_VV_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01001100000000000000000001010111"), VMSBC_VVM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01001110000000000100000001010111"), VMSBC_VX_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01001100000000000100000001010111"), VMSBC_VXM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000000000000001010111"), VSBC_VVM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000000100000001010111"), VSBC_VXM_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000111000001010111"), VSETVL_));
    map_11111110000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000000110011"), XOR_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111110000000000111000001111111"), map_11111110000000000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000000111000001111111;
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000010011"), ADDI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000000010011"), ANDI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001100011"), BEQ_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000001100011"), BGE_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000001100011"), BGEU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000001100011"), BLT_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000001100011"), BLTU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000001100011"), BNE_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000001110011"), CSRRC_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000001110011"), CSRRCI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000001110011"), CSRRS_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000001110011"), CSRRSI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000001110011"), CSRRW_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000001110011"), CSRRWI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000001111"), FENCE_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000000000111"), FLD_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000000111"), FLW_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000000100111"), FSD_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000100111"), FSW_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001100111"), JALR_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000001011011"), JOIN_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000000011"), LB_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000000000011"), LBU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000000000011"), LH_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000000011"), LHU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000000011"), LW_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000000010011"), ORI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000001011"), REGEXT_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000000001011"), REGEXTI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000100011"), SB_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000001011011"), SETRPC_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000000100011"), SH_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000010011"), SLTI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000000010011"), SLTIU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000100011"), SW_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000001011"), VADD12_VI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001011011"), VBEQ_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000001011011"), VBGE_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000001011011"), VBGEU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000001011011"), VBLT_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000001011011"), VBLTU_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000001011011"), VBNE_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001111011"), VLB12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000001111011"), VLBU12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000001111011"), VLH12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000001111011"), VLHU12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000001111011"), VLW12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000001111011"), VSB12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000001111011"), VSH12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000000001011"), VSUB12_VI_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000001111011"), VSW12_V_));
    map_00000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000000010011"), XORI_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000000111000001111111"), map_00000000000000000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111000000000000111000001111111;
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000101111"), AMOADD_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000010000000101111"), AMOAND_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000010000000101111"), AMOMAX_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000010000000101111"), AMOMAXU_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000010000000101111"), AMOMIN_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000010000000101111"), AMOMINU_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000010000000101111"), AMOOR_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000010000000101111"), AMOSWAP_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000010000000101111"), AMOXOR_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000010000000101111"), SC_W_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000101111"), VAMOADDEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000000101111"), VAMOADDEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000000101111"), VAMOADDEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000101111"), VAMOADDEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000101000000101111"), VAMOANDEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000110000000101111"), VAMOANDEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000111000000101111"), VAMOANDEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000000000000101111"), VAMOANDEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000101000000101111"), VAMOMAXEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000110000000101111"), VAMOMAXEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000111000000101111"), VAMOMAXEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000000000000101111"), VAMOMAXEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000101000000101111"), VAMOMAXUEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000110000000101111"), VAMOMAXUEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000111000000101111"), VAMOMAXUEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000000000000101111"), VAMOMAXUEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000101000000101111"), VAMOMINEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000110000000101111"), VAMOMINEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000111000000101111"), VAMOMINEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000000000000101111"), VAMOMINEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000101000000101111"), VAMOMINUEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000110000000101111"), VAMOMINUEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000111000000101111"), VAMOMINUEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000000000000101111"), VAMOMINUEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000101000000101111"), VAMOOREI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000110000000101111"), VAMOOREI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000111000000101111"), VAMOOREI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("01000000000000000000000000101111"), VAMOOREI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000101000000101111"), VAMOSWAPEI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000110000000101111"), VAMOSWAPEI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000111000000101111"), VAMOSWAPEI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000000000000101111"), VAMOSWAPEI8_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000101000000101111"), VAMOXOREI16_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000110000000101111"), VAMOXOREI32_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000111000000101111"), VAMOXOREI64_V_));
    map_11111000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000000000000101111"), VAMOXOREI8_V_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111000000000000111000001111111"), map_11111000000000000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000000000000001111111;
    map_00000000000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000010111"), AUIPC_));
    map_00000000000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001101111"), JAL_));
    map_00000000000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000110111"), LUI_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000000000000001111111"), map_00000000000000000000000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001111000000000011;
    map_00000000000000001111000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001001000000000010"), C_ADD_));
    map_00000000000000001111000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001000000000000010"), C_MV_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001111000000000011"), map_00000000000000001111000000000011});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001110000000000011;
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000000000000000000001"), C_ADDI_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000000000000000000000"), C_ADDI4SPN_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001100000000000001"), C_BEQZ_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001110000000000001"), C_BNEZ_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001010000000000001"), C_J_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000000100000000000001"), C_LI_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000000110000000000001"), C_LUI_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000000100000000000000"), C_LW_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000000100000000000010"), C_LWSP_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001100000000000000"), C_SW_));
    map_00000000000000001110000000000011.insert(std::make_pair(std::bitset<32>("00000000000000001100000000000010"), C_SWSP_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001110000000000011"), map_00000000000000001110000000000011});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001110111110000011;
    map_00000000000000001110111110000011.insert(std::make_pair(std::bitset<32>("00000000000000000110000100000001"), C_ADDI16SP_));
    map_00000000000000001110111110000011.insert(std::make_pair(std::bitset<32>("00000000000000000000000000000001"), C_NOP_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001110111110000011"), map_00000000000000001110111110000011});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001111110001100011;
    map_00000000000000001111110001100011.insert(std::make_pair(std::bitset<32>("00000000000000001000110001100001"), C_AND_));
    map_00000000000000001111110001100011.insert(std::make_pair(std::bitset<32>("00000000000000001000110001000001"), C_OR_));
    map_00000000000000001111110001100011.insert(std::make_pair(std::bitset<32>("00000000000000001000110000000001"), C_SUB_));
    map_00000000000000001111110001100011.insert(std::make_pair(std::bitset<32>("00000000000000001000110000100001"), C_XOR_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001111110001100011"), map_00000000000000001111110001100011});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001110110000000011;
    map_00000000000000001110110000000011.insert(std::make_pair(std::bitset<32>("00000000000000001000100000000001"), C_ANDI_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001110110000000011"), map_00000000000000001110110000000011});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001111111111111111;
    map_00000000000000001111111111111111.insert(std::make_pair(std::bitset<32>("00000000000000001001000000000010"), C_EBREAK_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001111111111111111"), map_00000000000000001111111111111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000000000000001111000001111111;
    map_00000000000000001111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000001001000000000010"), C_JALR_));
    map_00000000000000001111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000001000000000000010"), C_JR_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000000000000001111000001111111"), map_00000000000000001111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111111111111111111111111111111;
    map_11111111111111111111111111111111.insert(std::make_pair(std::bitset<32>("00000000000100000000000001110011"), EBREAK_));
    map_11111111111111111111111111111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001110011"), ECALL_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111111111111111111111111111111"), map_11111111111111111111111111111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111110000000000000000001111111;
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000000000001010011"), FADD_D_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001010011"), FADD_S_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00011010000000000000000001010011"), FDIV_D_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000000000001010011"), FDIV_S_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00010010000000000000000001010011"), FMUL_D_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000000000001010011"), FMUL_S_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00001010000000000000000001010011"), FSUB_D_));
    map_11111110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000000000001010011"), FSUB_S_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111110000000000000000001111111"), map_11111110000000000000000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111111111100000111000001111111;
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100010000000000001000001010011"), FCLASS_D_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000001000001010011"), FCLASS_S_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11110000000000000000000001010011"), FMV_W_X_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000000000001010011"), FMV_X_W_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01000010000000000101000001010111"), VFMV_S_F_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01011110000000000101000001010111"), VFMV_V_F_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010100000000101000000000111"), VL1RE16_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010100000000110000000000111"), VL1RE32_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010100000000111000000000111"), VL1RE64_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010100000000000000000000111"), VL1RE8_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00100010100000000101000000000111"), VL2RE16_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00100010100000000110000000000111"), VL2RE32_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00100010100000000111000000000111"), VL2RE64_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00100010100000000000000000000111"), VL2RE8_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01100010100000000101000000000111"), VL4RE16_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01100010100000000110000000000111"), VL4RE32_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01100010100000000111000000000111"), VL4RE64_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01100010100000000000000000000111"), VL4RE8_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100010100000000101000000000111"), VL8RE16_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100010100000000110000000000111"), VL8RE32_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100010100000000111000000000111"), VL8RE64_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100010100000000000000000000111"), VL8RE8_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010101100000000000000000111"), VLM_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01000010000000000110000001010111"), VMV_S_X_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01011110000000000011000001010111"), VMV_V_I_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01011110000000000000000001010111"), VMV_V_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01011110000000000100000001010111"), VMV_V_X_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010100000000000000000100111"), VS1R_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00100010100000000000000000100111"), VS2R_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("01100010100000000000000000100111"), VS4R_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("11100010100000000000000000100111"), VS8R_V_));
    map_11111111111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000010101100000000000000100111"), VSM_V_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111111111100000111000001111111"), map_11111111111100000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111111111100000000000001111111;
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("01000010000000000000000001010011"), FCVT_D_S_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11010010000000000000000001010011"), FCVT_D_W_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11010010000100000000000001010011"), FCVT_D_WU_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("01000000000100000000000001010011"), FCVT_S_D_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11010000000000000000000001010011"), FCVT_S_W_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11010000000100000000000001010011"), FCVT_S_WU_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11000010000000000000000001010011"), FCVT_W_D_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000000000001010011"), FCVT_W_S_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11000010000100000000000001010011"), FCVT_WU_D_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("11000000000100000000000001010011"), FCVT_WU_S_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("01011010000000000000000001010011"), FSQRT_D_));
    map_11111111111100000000000001111111.insert(std::make_pair(std::bitset<32>("01011000000000000000000001010011"), FSQRT_S_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111111111100000000000001111111"), map_11111111111100000000000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00000110000000000000000001111111;
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000000000001000011"), FMADD_D_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001000011"), FMADD_S_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000000000001000111"), FMSUB_D_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001000111"), FMSUB_S_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000000000001001111"), FNMADD_D_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001001111"), FNMADD_S_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000010000000000000000001001011"), FNMSUB_D_));
    map_00000110000000000000000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001001011"), FNMSUB_S_));
    instable_vec.push_back(instable_t{std::bitset<32>("00000110000000000000000001111111"), map_00000110000000000000000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111001111100000111000001111111;
    map_11111001111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000010000000101111"), LR_W_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111001111100000111000001111111"), map_11111001111100000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111100000000000111000001111111;
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000010000001010111"), VAADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000110000001010111"), VAADD_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000010000001010111"), VAADDU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000110000001010111"), VAADDU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000011000001010111"), VADD_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000001010111"), VADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000001010111"), VADD_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000011000001010111"), VAND_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000000000001010111"), VAND_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000100000001010111"), VAND_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101100000000000010000001010111"), VASUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101100000000000110000001010111"), VASUB_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000010000001010111"), VASUBU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000110000001010111"), VASUBU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000100000000000010000001010111"), VDIV_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000100000000000110000001010111"), VDIV_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000010000001010111"), VDIVU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000110000001010111"), VDIVU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000001010111"), VFADD_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000001010111"), VFADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000101000001010111"), VFDIV_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000001000001010111"), VFDIV_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110000000000000101000001010111"), VFMACC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110000000000000001000001010111"), VFMACC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000101000001010111"), VFMADD_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000001000001010111"), VFMADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000101000001010111"), VFMAX_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000001000001010111"), VFMAX_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000101000001010111"), VFMIN_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000001000001010111"), VFMIN_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111000000000000101000001010111"), VFMSAC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111000000000000001000001010111"), VFMSAC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101000000000000101000001010111"), VFMSUB_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101000000000000001000001010111"), VFMSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010000000000000101000001010111"), VFMUL_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010000000000000001000001010111"), VFMUL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000101000001010111"), VFNMACC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000001000001010111"), VFNMACC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000101000001010111"), VFNMADD_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000001000001010111"), VFNMADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000101000001010111"), VFNMSAC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000001000001010111"), VFNMSAC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000101000001010111"), VFNMSUB_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000001000001010111"), VFNMSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000100000000000101000001010111"), VFRDIV_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000001000001010111"), VFREDMAX_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000001000001010111"), VFREDMIN_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000001000001010111"), VFREDOSUM_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000001000001010111"), VFREDUSUM_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011100000000000101000001010111"), VFRSUB_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000101000001010111"), VFSGNJ_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100000000000000001000001010111"), VFSGNJ_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000101000001010111"), VFSGNJN_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00100100000000000001000001010111"), VFSGNJN_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000101000001010111"), VFSGNJX_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000001000001010111"), VFSGNJX_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111100000000000101000001010111"), VFSLIDE1DOWN_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111000000000000101000001010111"), VFSLIDE1UP_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000101000001010111"), VFSUB_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000001000001010111"), VFSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000100000000001011"), VFTTA_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000101000001010111"), VFWADD_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000001000001010111"), VFWADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11010000000000000101000001010111"), VFWADD_WF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11010000000000000001000001010111"), VFWADD_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110000000000000101000001010111"), VFWMACC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110000000000000001000001010111"), VFWMACC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111000000000000101000001010111"), VFWMSAC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111000000000000001000001010111"), VFWMSAC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000101000001010111"), VFWMUL_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000001000001010111"), VFWMUL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110100000000000101000001010111"), VFWNMACC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110100000000000001000001010111"), VFWNMACC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111100000000000101000001010111"), VFWNMSAC_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111100000000000001000001010111"), VFWNMSAC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001100000000000001000001010111"), VFWREDOSUM_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000100000000000001000001010111"), VFWREDUSUM_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001000000000000101000001010111"), VFWSUB_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001000000000000001000001010111"), VFWSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11011000000000000101000001010111"), VFWSUB_WF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11011000000000000001000001010111"), VFWSUB_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000010000001010111"), VMACC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000110000001010111"), VMACC_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000010000001010111"), VMADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000110000001010111"), VMADD_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100100000000000010000001010111"), VMAND_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000010000001010111"), VMANDN_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000000000001010111"), VMAX_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000100000001010111"), VMAX_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000000000001010111"), VMAXU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000100000001010111"), VMAXU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000101000001010111"), VMFEQ_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000001000001010111"), VMFEQ_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111100000000000101000001010111"), VMFGE_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110100000000000101000001010111"), VMFGT_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100100000000000101000001010111"), VMFLE_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100100000000000001000001010111"), VMFLE_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101100000000000101000001010111"), VMFLT_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101100000000000001000001010111"), VMFLT_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110000000000000101000001010111"), VMFNE_VF_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110000000000000001000001010111"), VMFNE_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000000000001010111"), VMIN_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000100000001010111"), VMIN_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000000000001010111"), VMINU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000100000001010111"), VMINU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110100000000000010000001010111"), VMNAND_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111000000000000010000001010111"), VMNOR_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101000000000000010000001010111"), VMOR_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110000000000000010000001010111"), VMORN_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000011000001010111"), VMSEQ_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000000000001010111"), VMSEQ_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100000000000000100000001010111"), VMSEQ_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111100000000000011000001010111"), VMSGT_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111100000000000100000001010111"), VMSGT_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111000000000000011000001010111"), VMSGTU_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111000000000000100000001010111"), VMSGTU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110100000000000011000001010111"), VMSLE_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110100000000000000000001010111"), VMSLE_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110100000000000100000001010111"), VMSLE_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110000000000000011000001010111"), VMSLEU_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110000000000000000000001010111"), VMSLEU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01110000000000000100000001010111"), VMSLEU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101100000000000000000001010111"), VMSLT_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101100000000000100000001010111"), VMSLT_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101000000000000000000001010111"), VMSLTU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101000000000000100000001010111"), VMSLTU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100100000000000011000001010111"), VMSNE_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100100000000000000000001010111"), VMSNE_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01100100000000000100000001010111"), VMSNE_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010100000000000010000001010111"), VMUL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010100000000000110000001010111"), VMUL_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011100000000000010000001010111"), VMULH_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011100000000000110000001010111"), VMULH_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011000000000000010000001010111"), VMULHSU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011000000000000110000001010111"), VMULHSU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010000000000000010000001010111"), VMULHU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010000000000000110000001010111"), VMULHU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01111100000000000010000001010111"), VMXNOR_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("01101100000000000010000001010111"), VMXOR_MM_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000011000001010111"), VNCLIP_WI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000000000001010111"), VNCLIP_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000100000001010111"), VNCLIP_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111000000000000011000001010111"), VNCLIPU_WI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111000000000000000000001010111"), VNCLIPU_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111000000000000100000001010111"), VNCLIPU_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000010000001010111"), VNMSAC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10111100000000000110000001010111"), VNMSAC_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000010000001010111"), VNMSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000110000001010111"), VNMSUB_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000011000001010111"), VNSRA_WI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000000000001010111"), VNSRA_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110100000000000100000001010111"), VNSRA_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110000000000000011000001010111"), VNSRL_WI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110000000000000000000001010111"), VNSRL_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10110000000000000100000001010111"), VNSRL_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000011000001010111"), VOR_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000000000001010111"), VOR_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101000000000000100000001010111"), VOR_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000010000001010111"), VREDAND_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000010000001010111"), VREDMAX_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000010000001010111"), VREDMAXU_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000010000001010111"), VREDMIN_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000010000001010111"), VREDMINU_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000010000001010111"), VREDOR_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000001010111"), VREDSUM_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000010000001010111"), VREDXOR_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001100000000000010000001010111"), VREM_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001100000000000110000001010111"), VREM_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001000000000000010000001010111"), VREMU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001000000000000110000001010111"), VREMU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00110000000000000011000001010111"), VRGATHER_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00110000000000000000000001010111"), VRGATHER_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00110000000000000100000001010111"), VRGATHER_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111000000000000000000001010111"), VRGATHEREI16_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000011000001010111"), VRSUB_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000100000001010111"), VRSUB_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000100000000000011000001010111"), VSADD_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000100000000000000000001010111"), VSADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000100000000000100000001010111"), VSADD_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000011000001010111"), VSADDU_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000000000001010111"), VSADDU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000100000001010111"), VSADDU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111100000000000110000001010111"), VSLIDE1DOWN_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111000000000000110000001010111"), VSLIDE1UP_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111100000000000011000001010111"), VSLIDEDOWN_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111100000000000100000001010111"), VSLIDEDOWN_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111000000000000011000001010111"), VSLIDEUP_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00111000000000000100000001010111"), VSLIDEUP_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010100000000000011000001010111"), VSLL_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010100000000000000000001010111"), VSLL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10010100000000000100000001010111"), VSLL_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011100000000000000000001010111"), VSMUL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10011100000000000100000001010111"), VSMUL_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000011000001010111"), VSRA_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000000000001010111"), VSRA_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100100000000000100000001010111"), VSRA_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000011000001010111"), VSRL_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000000000001010111"), VSRL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10100000000000000100000001010111"), VSRL_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000011000001010111"), VSSRA_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000000000001010111"), VSSRA_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101100000000000100000001010111"), VSSRA_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101000000000000011000001010111"), VSSRL_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101000000000000000000001010111"), VSSRL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10101000000000000100000001010111"), VSSRL_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001100000000000000000001010111"), VSSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001100000000000100000001010111"), VSSUB_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001000000000000000000001010111"), VSSUBU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("10001000000000000100000001010111"), VSSUBU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000000000001010111"), VSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000100000001010111"), VSUB_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000100000000000010000001010111"), VWADD_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000100000000000110000001010111"), VWADD_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11010100000000000010000001010111"), VWADD_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11010100000000000110000001010111"), VWADD_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000010000001010111"), VWADDU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000110000001010111"), VWADDU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11010000000000000010000001010111"), VWADDU_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11010000000000000110000001010111"), VWADDU_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110100000000000010000001010111"), VWMACC_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110100000000000110000001010111"), VWMACC_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111100000000000010000001010111"), VWMACCSU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111100000000000110000001010111"), VWMACCSU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110000000000000010000001010111"), VWMACCU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11110000000000000110000001010111"), VWMACCU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11111000000000000110000001010111"), VWMACCUS_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11101100000000000010000001010111"), VWMUL_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11101100000000000110000001010111"), VWMUL_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11101000000000000010000001010111"), VWMULSU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11101000000000000110000001010111"), VWMULSU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000010000001010111"), VWMULU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11100000000000000110000001010111"), VWMULU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000100000000000000000001010111"), VWREDSUM_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000000000001010111"), VWREDSUMU_VS_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001100000000000010000001010111"), VWSUB_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001100000000000110000001010111"), VWSUB_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11011100000000000010000001010111"), VWSUB_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11011100000000000110000001010111"), VWSUB_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001000000000000010000001010111"), VWSUBU_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11001000000000000110000001010111"), VWSUBU_VX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11011000000000000010000001010111"), VWSUBU_WV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("11011000000000000110000001010111"), VWSUBU_WX_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101100000000000011000001010111"), VXOR_VI_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101100000000000000000001010111"), VXOR_VV_));
    map_11111100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00101100000000000100000001010111"), VXOR_VX_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111100000000000111000001111111"), map_11111100000000000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111100000011111111000001111111;
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01000000000010000010000001010111"), VCPOP_M_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001100000010000001000001010111"), VFCLASS_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000011001000001010111"), VFCVT_F_X_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000010001000001010111"), VFCVT_F_XU_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000111001000001010111"), VFCVT_RTZ_X_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000110001000001010111"), VFCVT_RTZ_XU_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000001001000001010111"), VFCVT_X_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000000001000001010111"), VFCVT_XU_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000110000000001011"), VFEXP_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01000000000010001010000001010111"), VFIRST_M_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010100001000001010111"), VFNCVT_F_F_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010011001000001010111"), VFNCVT_F_X_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010010001000001010111"), VFNCVT_F_XU_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010101001000001010111"), VFNCVT_ROD_F_F_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010111001000001010111"), VFNCVT_RTZ_X_F_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010110001000001010111"), VFNCVT_RTZ_XU_F_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010001001000001010111"), VFNCVT_X_F_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000010000001000001010111"), VFNCVT_XU_F_W_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001100000000101001000001010111"), VFREC7_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001100000000100001000001010111"), VFRSQRT7_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001100000000000001000001010111"), VFSQRT_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001100001000001010111"), VFWCVT_F_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001011001000001010111"), VFWCVT_F_X_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001010001000001010111"), VFWCVT_F_XU_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001111001000001010111"), VFWCVT_RTZ_X_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001110001000001010111"), VFWCVT_RTZ_XU_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001001001000001010111"), VFWCVT_X_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000001000001000001010111"), VFWCVT_XU_F_V_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01010000000010000010000001010111"), VIOTA_M_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01010000000000001010000001010111"), VMSBF_M_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01010000000000011010000001010111"), VMSIF_M_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01010000000000010010000001010111"), VMSOF_M_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000111010000001010111"), VSEXT_VF2_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000101010000001010111"), VSEXT_VF4_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000011010000001010111"), VSEXT_VF8_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000110010000001010111"), VZEXT_VF2_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000100010000001010111"), VZEXT_VF4_));
    map_11111100000011111111000001111111.insert(std::make_pair(std::bitset<32>("01001000000000010010000001010111"), VZEXT_VF8_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111100000011111111000001111111"), map_11111100000011111111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111110000011111111000001111111;
    map_11111110000011111111000001111111.insert(std::make_pair(std::bitset<32>("01000010000000000001000001010111"), VFMV_F_S_));
    map_11111110000011111111000001111111.insert(std::make_pair(std::bitset<32>("10011110000000000011000001010111"), VMV1R_V_));
    map_11111110000011111111000001111111.insert(std::make_pair(std::bitset<32>("10011110000000001011000001010111"), VMV2R_V_));
    map_11111110000011111111000001111111.insert(std::make_pair(std::bitset<32>("10011110000000011011000001010111"), VMV4R_V_));
    map_11111110000011111111000001111111.insert(std::make_pair(std::bitset<32>("10011110000000111011000001010111"), VMV8R_V_));
    map_11111110000011111111000001111111.insert(std::make_pair(std::bitset<32>("01000010000000000010000001010111"), VMV_X_S_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111110000011111111000001111111"), map_11111110000011111111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11111101111111111111000001111111;
    map_11111101111111111111000001111111.insert(std::make_pair(std::bitset<32>("01010000000010001010000001010111"), VID_V_));
    instable_vec.push_back(instable_t{std::bitset<32>("11111101111111111111000001111111"), map_11111101111111111111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_10000000000000000111000001111111;
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000101011"), VLB_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000100000000101011"), VLBU_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000001000000101011"), VLH_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000101011"), VLHU_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000010000000101011"), VLW_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000000000000101011"), VSB_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000001010111"), VSETVLI_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000001000000101011"), VSH_V_));
    map_10000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("10000000000000000010000000101011"), VSW_V_));
    instable_vec.push_back(instable_t{std::bitset<32>("10000000000000000111000001111111"), map_10000000000000000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00011101111100000111000001111111;
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000111000000000111"), VLE1024_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010001000000000111000000000111"), VLE1024FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000000000000000111"), VLE128_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010001000000000000000000000111"), VLE128FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000000111"), VLE16_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000001000000000101000000000111"), VLE16FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000101000000000111"), VLE256_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010001000000000101000000000111"), VLE256FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000000000111"), VLE32_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000001000000000110000000000111"), VLE32FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000110000000000111"), VLE512_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010001000000000110000000000111"), VLE512FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000000000111"), VLE64_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000001000000000111000000000111"), VLE64FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000000111"), VLE8_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000001000000000000000000000111"), VLE8FF_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000111000000100111"), VSE1024_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000000000000100111"), VSE128_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000101000000100111"), VSE16_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000101000000100111"), VSE256_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000110000000100111"), VSE32_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00010000000000000110000000100111"), VSE512_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000111000000100111"), VSE64_V_));
    map_00011101111100000111000001111111.insert(std::make_pair(std::bitset<32>("00000000000000000000000000100111"), VSE8_V_));
    instable_vec.push_back(instable_t{std::bitset<32>("00011101111100000111000001111111"), map_00011101111100000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_00011100000000000111000001111111;
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000111000000000111"), VLOXEI1024_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000000000000000111"), VLOXEI128_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000101000000000111"), VLOXEI16_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000101000000000111"), VLOXEI256_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000110000000000111"), VLOXEI32_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000110000000000111"), VLOXEI512_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000111000000000111"), VLOXEI64_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000000000000000111"), VLOXEI8_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000111000000000111"), VLSE1024_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000000000000000111"), VLSE128_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000101000000000111"), VLSE16_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000101000000000111"), VLSE256_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000110000000000111"), VLSE32_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000110000000000111"), VLSE512_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000111000000000111"), VLSE64_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000000000000000111"), VLSE8_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000111000000000111"), VLUXEI1024_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000000000000000111"), VLUXEI128_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000101000000000111"), VLUXEI16_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000101000000000111"), VLUXEI256_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000110000000000111"), VLUXEI32_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000110000000000111"), VLUXEI512_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000111000000000111"), VLUXEI64_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000000000000000111"), VLUXEI8_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000111000000100111"), VSOXEI1024_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000000000000100111"), VSOXEI128_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000101000000100111"), VSOXEI16_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000101000000100111"), VSOXEI256_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000110000000100111"), VSOXEI32_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011100000000000110000000100111"), VSOXEI512_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000111000000100111"), VSOXEI64_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001100000000000000000000100111"), VSOXEI8_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000111000000100111"), VSSE1024_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000000000000100111"), VSSE128_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000101000000100111"), VSSE16_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000101000000100111"), VSSE256_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000110000000100111"), VSSE32_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00011000000000000110000000100111"), VSSE512_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000111000000100111"), VSSE64_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00001000000000000000000000100111"), VSSE8_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000111000000100111"), VSUXEI1024_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000000000000100111"), VSUXEI128_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000101000000100111"), VSUXEI16_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000101000000100111"), VSUXEI256_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000110000000100111"), VSUXEI32_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00010100000000000110000000100111"), VSUXEI512_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000111000000100111"), VSUXEI64_V_));
    map_00011100000000000111000001111111.insert(std::make_pair(std::bitset<32>("00000100000000000000000000100111"), VSUXEI8_V_));
    instable_vec.push_back(instable_t{std::bitset<32>("00011100000000000111000001111111"), map_00011100000000000111000001111111});
    std::unordered_map<std::bitset<32>, OP_TYPE> map_11000000000000000111000001111111;
    map_11000000000000000111000001111111.insert(std::make_pair(std::bitset<32>("11000000000000000111000001010111"), VSETIVLI_));
    instable_vec.push_back(instable_t{std::bitset<32>("11000000000000000111000001111111"), map_11000000000000000111000001111111});
};
